drop table comida
drop table ingredientes
drop table recetacompuesta
drop table recetas
drop table productoseccion
drop table producto
drop table seccion

-- -----------------------------------------------------
-- Table `delivery`.`seccion`
-- --------------------------------------------------
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[seccion]') AND type in (N'U'))
BEGIN
create table seccion (
	nombreSeccion VARCHAR(45) NOT NULL,
	especialidad VARCHAR(45) NOT NULL,
	estado char NOT NULL,
     primary key (nombreSeccion)
);
END

-- -----------------------------------------------------
-- Table `delivery`.`producto`
-- -----------------------------------------------------
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[producto]') AND type in (N'U'))
BEGIN
CREATE TABLE producto (
  nombre VARCHAR(45) NOT NULL,
  nombreProveedor VARCHAR(45) NOT NULL,
  estado char NOT NULL,
  PRIMARY KEY (nombre)
);
end

-- -----------------------------------------------------
-- Table `delivery`.`productoSeccion`
-- -----------------------------------------------------
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[productoSeccion]') AND type in (N'U'))
BEGIN
CREATE TABLE productoSeccion (
  nombreSeccion VARCHAR(45) NOT NULL,
  nombreProducto VARCHAR(45) NOT NULL,
  stock int NOT NULL,
  estado char NOT NULL,
  PRIMARY KEY (nombreProducto, nombreSeccion),

constraint FK_seccion_nombres
  foreign key (nombreSeccion)
  references seccion(nombreSeccion),

constraint FK_producto_nombre
  foreign key (nombreProducto)
  references producto(nombre)
);
end

-- -----------------------------------------------------
-- Table `delivery`.`Recetas`
-- -----------------------------------------------------

IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Recetas]') AND type in (N'U'))
BEGIN
CREATE TABLE Recetas (
  nombre VARCHAR(45) NOT NULL,
  tiempoCoccion FLOAT NOT NULL,
  modoPreparacion VARCHAR(45) NOT NULL,
  complejidad VARCHAR(50),
  estado char not null,
  PRIMARY KEY (nombre)
);
end


-- -----------------------------------------------------
-- Table `delivery`.`RecetaCompuesta`
-- -----------------------------------------------------
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[RecetaCompuesta]') AND type in (N'U'))
BEGIN
CREATE TABLE RecetaCompuesta (
  nombreMadre VARCHAR(45) NOT NULL,
  nombreHija VARCHAR(45) NOT NULL,
  PRIMARY KEY (nombreMadre, nombreHija),

constraint FK_Madre
  foreign key (nombreMadre)
  references Recetas(nombre),

constraint FK_Hija
  foreign key (nombreHija)
  references Recetas(nombre)

);
end

-- -----------------------------------------------------
-- Table `delivery`.`ingredientes`
-- -----------------------------------------------------

IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Ingredientes]') AND type in (N'U'))
BEGIN
CREATE TABLE Ingredientes (
  Receta VARCHAR(45) NOT NULL,
  Producto VARCHAR(45) NOT NULL,
  Cantidad FLOAT NOT NULL,
  PRIMARY KEY (Receta,Producto),

constraint FK_IngredienteReceta
  foreign key (Receta)
  references Recetas(nombre),

constraint FK_IngredienteProducto
  foreign key (Producto)
  references Producto(nombre)

);
end

-- -----------------------------------------------------
-- Table `delivery`.`comida`
-- -----------------------------------------------------
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[comida]') AND type in (N'U'))
BEGIN
CREATE TABLE comida (
  nombre VARCHAR(45) NOT NULL,
  rentabilidad FLOAT NOT NULL,
  seccion VARCHAR(45) NOT NULL,
  receta VARCHAR(45) NOT NULL,
  estado VARCHAR(45) NOT NULL,
  PRIMARY KEY (nombre),

constraint FK_seccion_nombre
  foreign key (seccion)
  references seccion(nombreSeccion),

constraint FK_receta
  foreign key (receta)
  references Recetas(nombre));

end
